<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    // {
    //   // 普通函数有 arguments 属性
    //   function fn() {
    //     console.log(arguments)
    //   }
    //   fn(0, 1, 2, 3, 4)
    // }


    // // 箭头函数中没有 arguments 属性
    // {
    //   let fn = () => {
    //     console.log(arguments)
    //   }
    //   fn(1, 2, 3, 4)
    // }

    // 普通函数 能 new 
    // {
    //   function fn(a) {
    //     return a
    //   }
    //   let obj = new fn(123)
    //   console.log(obj)
    // }

    // 箭头函数 不能 new

    // {
    //   let fn = () => {
    //     return 1234
    //   }
    //   let obj = new fn()
    // }

    // this 指向问题
    // 普通函数  两重函数 this指向windeow
    // {
    //   function fn(a) {
    //     setTimeout(function (a) {
    //       console.log(this)
    //       return a
    //     }, 100);
    //   }
    //   console.log(fn(12)) // undefined
    // }

    // 箭头函数 this 一直指向 函数调用者
    {

      let obj = {
        aa: 123,
        fn: function () {
          setTimeout(() => {
            console.log(this)
            console.log(this.aa)
          }, 100);
          return this
        }
      }

      console.log(obj.fn())
    }
  </script>
</body>

</html>